import {reqgoodscount, reqgoodslist, reqspecscount, reqspecslist} from '../../http/api'
const state = {
    // 初始值
    list:[],
    total:0,
    size:2,
    // 当前的页码
    page:1
}

const getters = {
    list(state){
        return state.list
    },
    total(state){
        return state.total
    },
    size(state){
        return state.size
    },
    page(state){
        return state.page
    },
}

const mutations = {
    changlist(state,list){
     state.list=list
    },
    changtotal(state,total){
        state.total=total
    },
    changsize(state,size){
        state.seiz=size
    },
    chanpage(state,page){
        state.page=page
    },
}

// actions中的第一次参数指的仓库自己一般是context
    // actions通过context.commit让mutations中的方发去修改state仓库的数据
const actions = {
    // 结构赋值 {state:{page,size},commit}
    reqList(context){
                       //1取出context仓库的state中的size
        context.dispatch("reqSpecsList")           
        // 请求总数
        reqgoodscount().then(res=>{
            if(res.data.code==200){
                console.log(res);
                context.commit("changtotal",res.data.list[0].total)
            }
        })
        
        
    },
    // 请求列表
    reqSpecsList(context,isall=false){
        // 判断是否要传分页
        let params =isall?{}:{
            page:context.state.page,size:context.state.size
        }
        reqgoodslist(params).then(res=>{
            if(res.data.code==200){
                //修改list 
                let arr=res.data.list?res.data.list:[]
                // 如果倒最后一页的数据没了让他自动跳转到前一页
                if(arr.length==0&&context.state.page>1){
                    context.commit("chanpage",context.state.page-1)
                    context.dispatch("reqSpecsList") 
                    return
                }
                context.commit("changlist",arr)
            }
        })
    },
    // 改变页码
    changePage(context,e){
            console.log(e);
            context.commit("chanpage",e)
            // context.state.page=e
            // 重新请求列表
            context.dispatch("reqSpecsList")  
    }
}

export default {
    state,
    getters,
    mutations,
    actions,
    namespaced: true
}